//JQUERY
document.write("<script language='JavaScript' src='common/jquery/jquery-1.7.1.js'></script>");
document.write("<script language='JavaScript' src='common/jquery/jquery-1.7.1.min.js' ></script>");
//document.write("<script language='JavaScript' src='common/jquery/jquery.expand-categorygrid.js'></script>");
document.write("<script language='JavaScript' src='common/jquery/jquery.grid.js'></script>");
//document.write("<script language='JavaScript' src='common/jquery/jquery-ui-1.8.14.custom.min.js'></script>");
document.write("<script language='JavaScript' src='common/jquery/jquery-ui-1.8.16.custom.min.js'></script>");
document.write("<script language='JavaScript' src='common/jquery/jquery.query-2.1.7.js'></script>");//$.query.get("id")
document.write("<script language='JavaScript' src='common/jquery/jquery.alert.js'></script>");
document.write("<script language='JavaScript' src='common/jquery/jquery.validate.js'></script>");
document.write("<script language='JavaScript' src='common/jquery/jquery.ui.tools.min.js'></script>");
document.write("<script language='JavaScript' src='components/datePicker/WdatePicker.js'></script>");//my97



/*
===========================================
//去除前后空格
===========================================
*/
String.prototype.Trim = function()
{
        return this.replace(/(^\s*)|(\s*$)/g, "");
}
/*
===========================================
//去除右边的空格
===========================================
*/
String.prototype.Rtrim = function()
{
        return this.replace(/(\s*$)/g, "");
}

/**
 * 字符串左边去除空格
 */
String.prototype.LTrim = function()
{
        return this.replace(/(^\s*)/g, "");
}
/**
 * 校验身份证号
 * @param card
 * @returns {Boolean}
 */
function checkCardNo(card) {
	// 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
	// 校验长度，类型
	if (isCardNo(card) === false) {
		return false;
	}
	// 检查省份
	if (checkProvince(card) === false) {
		return false;
	}
	// 校验生日
	if (checkBirthday(card) === false) {
		return false;
	}
	// 检验位的检测
	if (checkParity(card) === false) {
		return false;
	}

	return true;
};

//检验是否为身份证号长度与数字
function isCardNo(card) {
	// 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
	var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
	if (reg.test(card) === false) {
		return false;
	}

	return true;
};
//检查生日是否正确
function checkBirthday(card) {
	var len = card.length;
	// 身份证15位时，次序为省（3位）市（3位）年（2位）月（2位）日（2位）校验位（3位），皆为数字
	if (len == '15') {
		var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
		var arr_data = card.match(re_fifteen);
		var year = arr_data[2];
		var month = arr_data[3];
		var day = arr_data[4];
		var birthday = new Date('19' + year + '/' + month + '/' + day);
		return verifyBirthday('19' + year, month, day, birthday);
	}
	// 身份证18位时，次序为省（3位）市（3位）年（4位）月（2位）日（2位）校验位（4位），校验位末尾可能为X
	if (len == '18') {
		var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
		var arr_data = card.match(re_eighteen);
		var year = arr_data[2];
		var month = arr_data[3];
		var day = arr_data[4];
		var birthday = new Date(year + '/' + month + '/' + day);
		return verifyBirthday(year, month, day, birthday);
	}
	return false;
};
var vcity = {
		11 : "北京",
		12 : "天津",
		13 : "河北",
		14 : "山西",
		15 : "内蒙古",
		21 : "辽宁",
		22 : "吉林",
		23 : "黑龙江",
		31 : "上海",
		32 : "江苏",
		33 : "浙江",
		34 : "安徽",
		35 : "福建",
		36 : "江西",
		37 : "山东",
		41 : "河南",
		42 : "湖北",
		43 : "湖南",
		44 : "广东",
		45 : "广西",
		46 : "海南",
		50 : "重庆",
		51 : "四川",
		52 : "贵州",
		53 : "云南",
		54 : "西藏",
		61 : "陕西",
		62 : "甘肃",
		63 : "青海",
		64 : "宁夏",
		65 : "新疆",
		71 : "台湾",
		81 : "香港",
		82 : "澳门",
		91 : "国外"
	};

//校验日期
function verifyBirthday(year, month, day, birthday) {
	var now = new Date();
	var now_year = now.getFullYear();
	// 年月日是否合理
	if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month
			&& birthday.getDate() == day) {
		// 判断年份的范围（3岁到100岁之间)
		var time = now_year - year;
		if (time >= 3 && time <= 100) {
			return true;
		}
		return false;
	}
	return false;
};

//校验位的检测
function checkParity(card) {
	// 15位转18位
	card = changeFivteenToEighteen(card);
	var len = card.length;
	if (len == '18') {
		var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8,
				4, 2);
		var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3',
				'2');
		var cardTemp = 0, i, valnum;
		for (i = 0; i < 17; i++) {
			cardTemp += card.substr(i, 1) * arrInt[i];
		}
		valnum = arrCh[cardTemp % 11];
		if (valnum == card.substr(17, 1)) {
			return true;
		}
		return false;
	}
	return false;
};

//15位转18位身份证号
function changeFivteenToEighteen(card) {
	if (card.length == '15') {
		var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8,
				4, 2);
		var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3',
				'2');
		var cardTemp = 0, i;
		card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);
		for (i = 0; i < 17; i++) {
			cardTemp += card.substr(i, 1) * arrInt[i];
		}
		card += arrCh[cardTemp % 11];
		return card;
	}
	return card;
};


//取身份证前两位,校验省份
function checkProvince(card) {
	var province = card.substr(0, 2);
	if (vcity[province] == undefined) {
		return false;
	}
	return true;
};

function calculateAgeByIdCard(card) {

	var len = card.length;
	var tempAge="";
	if (len == 15 && checkBirthday(card) == true && checkParity(card)== true && checkBirthday(card) == true) {
		var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
		var arr_data = card.match(re_fifteen);
		var birth_year = "19" + arr_data[2];
		var now = new Date();
		var now_year = now.getFullYear();
		var age = now_year - birth_year + 1;
		tempAge=age;
	}

	if (len == 18 && checkBirthday(card) == true && checkParity(card)== true && checkBirthday(card) == true) {
		var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
		var arr_data = card.match(re_eighteen);
		var birth_year = arr_data[2];
		var now = new Date();
		var now_year = now.getFullYear();
		var age = now_year - birth_year + 1;
		tempAge=age;
	}
	return tempAge;
}

/**       
 * 对Date的扩展，将 Date 转化为指定格式的String       
 * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符       
 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)       
 * eg:       
 * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423       
 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04       
 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04       
 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04       
 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18       
 */          
Date.prototype.pattern=function(fmt) {           
    var o = {           
    "M+" : this.getMonth()+1, //月份            
    "d+" : this.getDate(), //日            
    "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时            
    "H+" : this.getHours(), //小时            
    "m+" : this.getMinutes(), //分            
    "s+" : this.getSeconds(), //秒            
    "q+" : Math.floor((this.getMonth()+3)/3), //季度            
    "S" : this.getMilliseconds() //毫秒            
    };           
    var week = {           
    "0" : "/u65e5",           
    "1" : "/u4e00",           
    "2" : "/u4e8c",           
    "3" : "/u4e09",           
    "4" : "/u56db",           
    "5" : "/u4e94",           
    "6" : "/u516d"          
    };           
    if(/(y+)/.test(fmt)){           
        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));           
    }           
    if(/(E+)/.test(fmt)){           
        fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]);           
    }           
    for(var k in o){           
        if(new RegExp("("+ k +")").test(fmt)){           
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));           
        }           
    }           
    return fmt;           
} ;

/**
 * 加减天数
 * @param days
 * @returns
 */
Date.prototype.addDate=function(days)
{
    var tempDate = this.valueOf();
    tempDate = tempDate + days * 24 * 60 * 60 * 1000;
    tempDate = new Date(tempDate);
    return tempDate;
};

/**
 * String 格式化成Date类型
 * @returns
 */
String.prototype.toDate = function()
{
        try
        {
                return new Date(this.replace(/-/g, "\/"));
        }
        catch(e)
        {
                return null;
        }
};
